<html>
  <body>
    <script type="text/javascript">
    /*
      function sayHi() {
        alert("Hi");
      }
      sayHi() ;
      */
var scope='global';
function fn1(){
  alert(scope); //此时虽然有全局变量 scope ,但是在当前函数域内有函数内变量scope,
                //此变量这时还没有初始化,对js来说scope变量声明被提前到运行前,但赋值在
                //alert之后,所以这里scope为undifined
  var scope='local';
  alert(scope); //同上,但是已经被赋值,局域变量scope为local
}
fn1();    //输出结果？
alert(scope);//输出结果？
  
//===========例2==========
  
//var scope='global';
function fn2(){
  alert(scope); // 没有局域变量scope,到上一层全局变量里找到scope,因为已经被赋值为global,
                // 所以返回global
  scope='local'; //注意这里scope只有一个,就是全局变量scope,此时被赋值为local
  alert(scope);//上一句已经赋值为local,这里为local
}
fn2();    //输出结果？
alert(scope);//输出结果？
  
//===========例3=========
  
//var scope='global';
function fn3(scope){ //注意这里scope成了参数
  alert(scope); // 在参数里取值 argument[0]
  scope='global'; // 这里把参数赋值为global
  alert(scope); //还是参数
}
fn3();    //输出结果？
alert(scope);//输出结果？ 这里是全局变量scope

    </script>
  </body>
</html>